home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FishMarket 1.0
/
FishMarket v1.0.iso
/
fishies
/
276-300
/
disk_280
/
graph
/
coords.h
< prev
next >
Wrap
C/C++ Source or Header
|
1992-05-06
|
2KB
|
50 lines
/*
* GRAPH, Version 1.00 - 4 August 1989
*
* Copyright 1989, David Gay. All Rights Reserved.
* This software is freely redistrubatable.
*/
/* Set up a coordinate system in a Rastport */
#ifndef COORDS_H
#define COORDS_H
/* The class used */
struct RWindow {
struct RastPort *rp; /* The rastport associated woth this coord system */
/* The methods : */
void (*delete)(struct RWindow *this);
/* Do a Movw/Draw, checks for overflow, etc */
void (*rdo)(struct RWindow *this, void (*func)(struct RastPort *rp, long sx
, long sy), double x, double y);
double (*sx)(struct RWindow *this, double x); /* real coords -> rastport co
ords */
double (*sy)(struct RWindow *this, double y);
double (*x)(struct RWindow *this, long sx); /* rastport coords -> real co
ords */
double (*y)(struct RWindow *this, long sy);
};
/* Create a coordinate system in Rastport rp (w by h pixels),
{x,y}{min,max}offset : offset in rp at which coords starts (normally > 0)
{x,y}{min,max} : limits for coords
logx, logy : logarithmic scale ?
clip : setup clipping to {x,y}{min,max}offset boundaries ?
*/
struct RWindow *new_RWindow(struct RastPort *rp, long w, long h,
long xminoffset, long yminoffset, long xmaxoffset,
long ymaxoffset,
double xmin, double ymin, double xmax, double ymax,
long logx, long logy, long clip);
long ftol(double x); /* convert double to integer, round down. cf floor */
extern void Move(), BigDraw();
/* Easy calling for Move, Draw in real coords */
#define RMove(rwin, x, y) ((rwin)->rdo((rwin), Move, (x), (y)))
#define RDraw(rwin, x, y) ((rwin)->rdo((rwin), BigDraw, (x), (y)))
#endif